package com.cloudbroker.bcs.platform.ltb.bizapi.t2service.transaction;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.ltb.bizapi.constants.IFSFunctionIds;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.pay.back.PayApplyBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.pay.back.PayConfirmBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.pay.back.PayRefundBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.pay.back.PingPlusPayApplyBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.pay.vo.*;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.transaction.back.DongbeiPayHtmlBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.transaction.vo.DongbeiPayHtmlForm;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

/**
 * Created by daibd19671 on 2016/10/28.
 */
@ServiceModule
public interface PayT2BizService {
    @Service(functionId = IFSFunctionIds.IFSLTBCombineFunIds.FUNC_APPLY_PAY, desc = "支付申请")
    public PayApplyBack func_compay_apply(@ServiceParam("param") PayApplyForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBCombineFunIds.FUNC_RESULT_PAY, desc = "支付结果")
    public PayConfirmBack func_result_apply(@ServiceParam("param") PayConfirmForm form);


    /**
     * 东北获取银联支付报文
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIds.IFSLTBCombineFunIds.FUNC_DONGBEI_PAY_HTML, desc = "东北获取银联支付报文")
    DongbeiPayHtmlBack func_dongbei_pay_html(DongbeiPayHtmlForm form);


    //支付申请，（后台以及Ping++)
    @Service(functionId = IFSFunctionIds.IFSLTBCombineFunIds.FUNC_PINGPLUS_PAY_APPLY, desc = "支付申请，（后台以及Ping++)")
    public PingPlusPayApplyBack func_ping_pay_apply(@ServiceParam("param")PingPlusPayApplyForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBCombineFunIds.FUNC_PINGPLUS_CALLBACK, desc = "Ping++回调")
    public HSBCPSBackVO func_webhooks_callback(@ServiceParam("param") WebhooksForm form);


    @Service(functionId = IFSFunctionIds.IFSLTBCombineFunIds.FUNC_PINGPLUS_OPER, desc = "Ping++支付申请")
    public PingPlusPayApplyBack func_ping_pay_oper(@ServiceParam("param") PingPlusPayOper form);

    @Service(functionId = IFSFunctionIds.IFSLTBCombineFunIds.FUNC_PAY_CANCEL, desc = "支付取消")
    public HSBCPSBackVO func_cancel_pay_apply(@ServiceParam("param") PayCancelForm form);

    @Service(functionId = "847150", desc = "退款")
    public PayRefundBack func_ping_pay_refund(@ServiceParam("param")PayRefundForm form);


}
